package com.legendshop.openportal.sdk.model.constants;

import com.legendshop.openportal.sdk.model.message.vo.*;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author jzh
 * @version 1.0.0
 * @title MessageTypeEnum
 * @date 2024/7/8 17:06
 * @description：
 */
@Getter
@AllArgsConstructor
public enum MessageTypeEnum {

    /**
     * 订单拆分消息
     */
    ORDER_SPLIT(1, OrderSplitMsg.class),

    /**
     * 商品价格变更
     */
    PROD_PRICE_CHANGE(2, ProdPriceChangeMsg.class),

    /**
     * 商品上下架变更消息
     */
    PROD_ON_OFF_UPDATE(4, ProdOnOffUpdateMsg.class),


    /**
     * 商品添加、删除消息
     */
    PROD_ADD_OR_DEL(6, ProdAddOrDelMsg.class),

    /**
     * 订单创建消息
     */
    ORDER_CREATE(9, OrderCreateMsg.class),

    /**
     * 订单取消消息
     * 不分取消原因
     */
    ORDER_CANCEL(10, OrderCancelMsg.class),

    /**
     * 订单支付消息
     */
    ORDER_PAYMENT(11, OrderPaymentMsg.class),

    /**
     * 配送单生成成功消息
     */
    DELIVERY_NOTE_GENERATE(12, DeliveryNoteGenerateMsg.class),

    /**
     * 商品信息变更
     * <p>
     * 包含：
     * 商品名称，介绍，规格参数和商品图变更
     */
    PROD_INFO_CHANGE(16, ProdInfoChangeMsg.class),

    /**
     * 旧售后服务单状态变更
     */
    @Deprecated
    OLD_AFS_SERVICE_STATUS_CHANGE(28, null),

    /**
     * 订单完成消息
     */
    ORDER_COMPLETED(31, OrderCompletedMsg.class),

    /**
     * 地址变更消息
     */
    ADDRESS_CHANGE(50, AddressChangeMsg.class),

    /**
     * 用户注册消息
     */
    USER_REGISTRATION(60, UserRegistrationMsg.class),

    /**
     * 用户手机号变更消息
     */
    USER_MOBILE_CHANGED(61, UserMobileChangedMsg.class),

    /**
     * 用户其它信息变更消息
     * 触发条件：
     * 用户昵称、头像
     */
    USER_OTHER_INFO_CHANGED(62, UserOtherInfoChangedMsg.class),

    /**
     * 用户微信授权消息
     */
    USER_WEIXIN_AUTHORIZE(63, UserWeixinAuthorizeMsg.class),

    /**
     * 申请单环节变更消息
     */
    APPLY_STEP_CHANGE(104, ApplyStepChangeMsg.class),

    ;

    /**
     * 事件ID
     */
    private final Integer value;

    /**
     * 事件响应类
     */
    private final Class<?> responseClass;
}
